<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">
<LINK rel="stylesheet" type="text/css" href="tutorial.css">
<TITLE>
Constraint Logic Programming
</TITLE>
</HEAD>
<BODY >
<A HREF="tutorial079.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="tutorial081.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc151">11.1</A>&nbsp;&nbsp;Constraint Logic Programming</H2>

<A NAME="@default289"></A>
<A NAME="@default290"></A>
One of the main ambitions of Constraint Programming is the
separation of Modelling, Algorithms and Search.
This is best characterised by two pseudo-equations.
<A NAME="@default291"></A>
The first one is paraphrased from Kowalski [<A HREF="tutorial133.html#kowalski79"><CITE>12</CITE></A>]
<BLOCKQUOTE CLASS="quote"><PRE CLASS="verbatim">
Solution = Logic + Control
</PRE></BLOCKQUOTE>
and states that we intend to solve a problem by
giving a logical, declarative description of the problem and
adding control information that enables a computer to deduce a solution.<BR>
<BR>
<A NAME="@default292"></A>
The second equation
<BLOCKQUOTE CLASS="quote"><PRE CLASS="verbatim">
Control = Reasoning + Search
</PRE></BLOCKQUOTE>
is motivated by a fundamental difficulty we face when dealing with
combinatorial problems: we do not have efficient algorithms
for finding solutions, we have to resort to a combination of
reasoning (via efficient algorithms) and (inefficient) search.<BR>
<BR>
We can consider every constraint program as an exercise in
combining the 3 ingredients:
<UL CLASS="itemize"><LI CLASS="li-itemize">
<B>Logic</B> - The design of a declarative <EM>Model</EM> of the problem.
<LI CLASS="li-itemize"><B>Reasoning</B> - The choice of clever <EM>Constraint Propagation</EM>
 algorithms that reduce the need for search.
<LI CLASS="li-itemize"><B>Search</B> - The choice of search <EM>strategies and heuristics</EM> for
 finding solutions quickly.
</UL>
In this chapter we will focus on the first issue, <B>Problem Modelling</B>,
and how it is supported by ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP>.<BR>
<BR>
<HR>
<A HREF="tutorial079.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="tutorial081.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
